using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Web.UI.WebControls;

namespace Heckel.EasyTools.Diagramming
{
    [Serializable()]
    public class DiagramNode
    {
        private string _imageUrl;
        public string ImageUrl
        {
            get { return _imageUrl; }
            set { _imageUrl = value; }
        }

        private string _dependencyName;
        public string DependencyName
        {
            get { return _dependencyName; }
            set { _dependencyName = value; }
        }

        private string _dependencyDescription;
        public string DependencyDescription
        {
            get { return _dependencyDescription; }
            set { _dependencyDescription = value; }
        }

        private string _dependencyClientID;
        public string DependencyClientID
        {
            get { return _dependencyClientID; }
            set { _dependencyClientID = value; }
        }

        private int _dependencyID;
        public int DependencyID
        {
            get { return _dependencyID; }
            set { _dependencyID = value; }
        }

        private int _xPos;
        public int XPos
        {
            get { return _xPos; }
            set { _xPos = value; }
        }

        private int _yPos;
        public int YPos
        {
            get { return _yPos; }
            set { _yPos = value; }
        }
       
        private List<string> _parentOf;
        public List<string> ParentOf
        {
            get { return _parentOf; }
            set { _parentOf = value; }
        }
        
        private List<string> _childOf;
        public List<string> ChildOf
        {
            get { return _childOf; }
            set { _childOf = value; }
        }

        private Unit _width;
        public Unit Width
        {
            get { return _width;}
            set { _width = value; }
        }

         private Unit _height;
        public Unit Height
        {
            get { return _height;}
            set { _height = value; }
        }

        private Color _backColor;
        public Color BackColor
        {
            get { return _backColor; }
            set { _backColor = value; }
        }

        private Color _foreColor;
        public Color ForeColor
        {
            get { return _foreColor; }
            set { _foreColor = value; }
        }

        private Color _borderColor;
        public Color BorderColor
        {
            get { return _borderColor; }
            set { _borderColor = value; }
        }

        private string _detailsButtonText;
        public string DetailsButtonText
        {
            get { return _detailsButtonText;}
            set { _detailsButtonText = value; }
        }

        private string _deleteNodeCssClass;
        public string DeleteNodeCssClass
        {
            get { return _deleteNodeCssClass; }
            set { _deleteNodeCssClass = value; }
        }

        public DiagramNode(string imageUrl, string dependencyName, string dependencyDescription, string dependencyClientID, int dependencyID, int xPos, int yPos, List<string> parentOf, List<string> childOf)
        {
            this._imageUrl = imageUrl;
            this._xPos = xPos;
            this._yPos = yPos;
            this._dependencyClientID = dependencyClientID;
            this._dependencyName = dependencyName;
            this._dependencyDescription = dependencyDescription;
            this._dependencyID = dependencyID;
            this._childOf = childOf;
            this._parentOf = parentOf;
        }
    }
}
